package br.mikhas.lab.scanner;

public interface CharStream {
	/**
	 * Gets current position in the stream
	 * 
	 * @return
	 */
	int currentPosition();

	/**
	 * Gets the next char in the stream
	 * 
	 * @return
	 */
	char nextChar();

	boolean hasNext();

	/**
	 * Gets a section of the char stream as a String
	 * 
	 * @param start
	 *            The index of the start of the section
	 * @param end
	 *            The index of the end of the section
	 * @return
	 */
	String getSection(int start, int end);

	void setPosition(int lastFinalPosition);
}
